using SQLite;

namespace FileImportSystem2.Db.Entities;

/// <summary>
/// 发件数据实体类
/// 用于存储发件扫描数据
/// 包含运单的基本信息、扫描信息及匹配状态
/// </summary>
public class SenderData
{
    /// <summary>
    /// 数据日期
    /// 格式为"yyyy-MM-dd"
    /// </summary>
    public string Date { get; set; } = null!; // "yyyy-MM-dd"

    /// <summary>
    /// 运单编号
    /// 作为主键，唯一标识一条发件数据
    /// </summary>
    [PrimaryKey]
    public string 单号 { get; set; } = string.Empty;
    
    /// <summary>
    /// 扫描人员姓名
    /// 负责扫描该运单的人员
    /// </summary>
    public string 扫描人 { get; set; } = string.Empty;
    
    /// <summary>
    /// 扫描人员编码
    /// 扫描人员的唯一标识符
    /// </summary>
    public string 扫描人编码 { get; set; } = string.Empty;
    
    /// <summary>
    /// 扫描网点名称
    /// 运单被扫描的网点名称
    /// </summary>
    public string 扫描网点 { get; set; } = string.Empty;
    
    /// <summary>
    /// 发件仓信息
    /// 表示该运单的发件仓库
    /// 可能通过匹配表自动填充
    /// </summary>
    public string 发件仓 { get; set; } = string.Empty;
    
    /// <summary>
    /// 数据导入时间
    /// 记录数据被导入到系统的时间
    /// 默认值为当前系统时间
    /// </summary>
    public DateTime ImportTime { get; set; } = DateTime.Now;

    /// <summary>
    /// 数据匹配状态
    /// 0: 未匹配, 1: 已匹配
    /// 标识该发件数据是否已与其他系统数据成功匹配
    /// </summary>
    public int IsMatched { get; set; } = 0; // 0: 未匹配, 1: 已匹配
}